package com.highspeed.bdk.gateway.socket.analyze.preset.deploy.request.issued.instruction;


import com.highspeed.bdk.gateway.Util;

/**
 * RIO逻辑链路状态调显
 */
public class LogicalLinkStatusDisplayInstruction {
    public byte[] createInstruction(short srcAddr, byte frameType, short messageId, int length, byte requestType) {
        int offset = 0;
        byte[] bytes = new byte[10];

        //源逻辑地址(2byte)
        Util.putShort(bytes, srcAddr, offset);
        offset += 2;

        /**
         * 应用消息头-帧类型(1byte)
         枚举项：
         0=N/A；
         1=有ACK应答，有结果；
         2=有ACK应答，无结果；
         3=无ACK应答，有结果；
         4=无ACK应答，无结果；
         5=ACK/NAK帧；
         描述信息：0=N/A。
         */
        Util.putByte(bytes, frameType, offset);
        offset++;


        /**
         * 应用消息头-消息ID(2byte)
         描述信息：8005。
         */
        Util.putShort(bytes, messageId, offset);
        offset += 2;

        /**
         * 应用消息头-消息长度_4字节(4byte)
         参数：LSB：1；
         描述：
         消息长度_4字节。
         */
        Util.putInt(bytes, length, offset);
        offset += 4;

        /**
         * RNMS工作状态调显请求类型(1byte)
         RIO块传输逻辑链路信息回传请求；
         */
        Util.putByte(bytes, requestType, offset);
        offset++;
        return bytes;
    }
}
